package ventanas;
import java.rmi.RemoteException;
import java.util.List;

import javax.swing.DefaultComboBoxModel;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JList;
import javax.swing.ListModel;
import javax.swing.ListSelectionModel;

import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;
import javax.swing.border.TitledBorder;

import controladores.ControladorListaReposicionDeInsumos;

import cliente.ClienteAdminCentral;


import beans.Compra;
import beans.OrdenCompra;
import beans.Producto;
import beans.Proveedor;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class VentanaListaReposicionDeInsumos extends javax.swing.JFrame {


	private JButton btnCancelar;
	private JButton btnVuelta;
	private JButton btnIda;
	private JList <Compra> listaProductosAComprar;
	private JList <Compra> listaProductos;
	private ListModel <Compra> modelListProductos;
	private ListModel <Compra> modelListProductosAComprar;
	private JButton btnAceptar;
	private JButton btnCargarListaReposicion;
	private ControladorListaReposicionDeInsumos controlador;

	/**
	* Auto-generated main method to display this JFrame
	*/
	
	public VentanaListaReposicionDeInsumos( Proveedor p, OrdenCompra oc ) {
		super();
		this.controlador = new ControladorListaReposicionDeInsumos(this, oc);
		this.setVisible(true);
		initGUI();
//		cargarListas();
		agregarListeners();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			
			modelListProductos = new DefaultListModel<Compra>();
			modelListProductosAComprar = new DefaultListModel<Compra>();
			
			{
				btnCargarListaReposicion = new JButton();
				getContentPane().add(btnCargarListaReposicion);
				btnCargarListaReposicion.setText("Cargar Lista Reposicion");
				btnCargarListaReposicion.setBounds(121, 16, 248, 24);
			}
			{
				btnAceptar = new JButton();
				getContentPane().add(btnAceptar);
				btnAceptar.setText("Aceptar");
				btnAceptar.setBounds(47, 225, 162, 33);
			}
			{
				btnCancelar = new JButton();
				getContentPane().add(btnCancelar);
				btnCancelar.setText("Cancelar");
				btnCancelar.setBounds(340, 228, 148, 28);
			}
			{
				listaProductos = new JList<Compra>();
				listaProductos.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
				
				getContentPane().add(listaProductos);
				listaProductos.setBorder(new TitledBorder(null, "Productos", TitledBorder.LEFT, TitledBorder.TOP, null, null));
				listaProductos.setModel(modelListProductos);
				listaProductos.setBounds(25, 65, 193, 148);
			}
			{
				listaProductosAComprar = new JList<Compra>();
				listaProductosAComprar.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
				getContentPane().add(listaProductosAComprar);
				listaProductosAComprar.setBorder(new TitledBorder(null, "Productos a Comprar", TitledBorder.LEFT, TitledBorder.TOP, null, null));
				listaProductosAComprar.setModel(modelListProductosAComprar);
				listaProductosAComprar.setBounds(321, 65, 199, 148);
			}
			{
				btnIda = new JButton();
				getContentPane().add(btnIda);
				btnIda.setText("-->");
				btnIda.setBounds(230, 78, 67, 34);
			}
			{
				btnVuelta = new JButton();
				getContentPane().add(btnVuelta);
				btnVuelta.setText("<--");
				btnVuelta.setBounds(235, 140, 62, 34);
			}
			pack();
			this.setSize(556, 356);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}

	
	
	public void cargarListas() 
	{
		DefaultListModel<Compra> modeloProds = (DefaultListModel<Compra>) listaProductos.getModel();
		modeloProds =  new DefaultListModel<Compra>();
		try 
		{
			List<Compra> compras = ClienteAdminCentral.obtenerSistema().listaReposicionInsumos();
			for (Compra comp : compras)
			{
					modeloProds.addElement(comp);
			}
			listaProductos.setModel(modeloProds);
			listaProductos.revalidate();
		}
		catch (RemoteException e)
		{
			e.printStackTrace();
		}
	}
	
	
	
	
//	public void cargarListas() 
//	{
//		DefaultListModel<Producto> modeloProds = (DefaultListModel<Producto>) listaProductos.getModel();
//		modeloProds =  new DefaultListModel<Producto>();
//		try 
//		{
//			List<Producto> prods = ClienteAdminCentral.obtenerSistema().listaReposicionInsumos();
//			for (Producto producto : prods)
//			{
//				modeloProds.addElement(producto);
//			}
//			listaProductos.setModel(modeloProds);
//			listaProductos.revalidate();
//		}
//		catch (RemoteException e)
//		{
//			e.printStackTrace();
//		}
//	}
	
	
	public void agregarListeners()
	{
		btnIda.addActionListener(controlador);
		btnVuelta.addActionListener(controlador);
		btnAceptar.addActionListener(controlador);
		btnCargarListaReposicion.addActionListener(controlador);
		btnCancelar.addActionListener(controlador);
	}
	
	public void actualizarListas (){
		listaProductos.revalidate();
		listaProductosAComprar.revalidate();
	}
	
	
	public JButton getBtnCancelar() {
		return btnCancelar;
	}

	public JButton getBtnVuelta() {
		return btnVuelta;
	}

	public JButton getBtnIda() {
		return btnIda;
	}

	public ListModel<Compra> getModelListProductos() {
		return modelListProductos;
	}

	public ListModel<Compra> getModelListProductosAComprar() {
		return modelListProductosAComprar;
	}

	public JButton getBtnAceptar() {
		return btnAceptar;
	}

	public ControladorListaReposicionDeInsumos getControlador() {
		return controlador;
	}

	public JList<Compra> getListaProductosAComprar() {
		return listaProductosAComprar;
	}

	public void setListaProductosAComprar(JList<Compra> listaProductosAComprar) {
		this.listaProductosAComprar = listaProductosAComprar;
	}

	public JList<Compra> getListaProductos() {
		return listaProductos;
	}

	public void setListaProductos(JList<Compra> listaProductos) {
		this.listaProductos = listaProductos;
	}

	public JButton getBtnCargarListaReposicion() {
		return btnCargarListaReposicion;
	}

	public void setBtnCargarListaReposicion(JButton btnCargarListaReposicion) {
		this.btnCargarListaReposicion = btnCargarListaReposicion;
	}
	
}
